Skip to content

Conversation

Manishearth
Copy link
Member

sanxiyn and others added 22 commits February 3, 2015 18:35
Currently, target.mk passes -L "" when LLVM_STDCPP_LOCATION_$(2) is empty.

This fixes rust-lang#23287.
Show how to get a pointer without destroying the box.
Use `boxed::into_raw` instead of `mem::transmute`.
It is no longer possible to specialize on the `Hasher` because it moved
to a method-level type parameter.
When this attribute is applied to a function, its return value gets the
noalias attribute, which is how you tell LLVM that the function returns
a "new" pointer that doesn't alias anything accessible to the caller,
i.e. it acts like a memory allocator.

Plain malloc doesn't need this attribute because LLVM already knows
about malloc and adds the attribute itself.
This adds a special code path for impls which are listed as default impls to
ensure that they're loaded correctly.
…=alexcrichton

 Fixes rust-lang#22656. Also adds a nice pretty printer for `Vec`.
…crichton

 ```rust
Rust:  let slice: &[i32] = &[0, 1, 2, 3];
GDB:   $1 = &[i32](len: 4) = {0, 1, 2, 3}

Rust:  let vec = vec![4, 5, 6, 7];
GDB:   $2 = Vec<u64>(len: 4, cap: 4) = {4, 5, 6, 7}

Rust:  let str_slice = \"IAMA string slice!\";
GDB:   $3 = \"IAMA string slice!\"

Rust:  let string = \"IAMA string!\".to_string();
GDB:   $4 = \"IAMA string!\"
```
Neat!
 This is the second time I've made this typo.
…r=brson

 This adds a special code path for impls which are listed as default impls to
ensure that they're loaded correctly.
 Show how to get a pointer without destroying the box.
Use `boxed::into_raw` instead of `mem::transmute`.

I removed the `let my_num: *const i32 = mem::transmute(my_num);` case altogether because we own the box, a `*mut` pointer is good anywhere a `*const` is needed, `from_raw` takes a mutable pointer and casting from a `*const` caused an ICE.
…, r=steveklabnik

 Fixed grammar errors (incorrect uses of commas and \"you're\" instead of \"your\") and broke up a long line.

r? @steveklabnik
 It is no longer possible to specialize on the `Hasher` because it moved to a method-level type parameter.
 When this attribute is applied to a function, its return value gets the
noalias attribute, which is how you tell LLVM that the function returns
a \"new\" pointer that doesn't alias anything accessible to the caller,
i.e. it acts like a memory allocator.

Plain malloc doesn't need this attribute because LLVM already knows
about malloc and adds the attribute itself.
 Currently, target.mk passes -L \"\" when LLVM_STDCPP_LOCATION_$(2) is empty.

This fixes rust-lang#23287.
 This implements a wish suggested in rust-lang#17410, detecting enum variants that are never constructed, even in the presence of `#[derive(Clone)]`. The implementation is general and not specific to `#[derive(Clone)]`.

r? @jakub-
@Manishearth
Copy link
Member Author

@bors: r+ p=20

@bors
Copy link
Collaborator

bors commented Mar 13, 2015

@bors r=Manishearth 40b6464

@bors
Copy link
Collaborator

bors commented Mar 13, 2015

⌛ Testing commit 40b6464 with merge f74f2c3...

@bors
Copy link
Collaborator

bors commented Mar 13, 2015

💔 Test failed - auto-win-32-opt

@Manishearth
Copy link
Member Author

@bors: retry force clean

@bors
Copy link
Collaborator

bors commented Mar 13, 2015

⌛ Testing commit 40b6464 with merge 9eb69ab...

@bors
Copy link
Collaborator

bors commented Mar 13, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.